perm filename LIST.AX[F76,JMC] blob
sn#249283 filedate 1976-11-26 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00004 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 DECLARE INDVAR X Y Z ε SEXP
C00003 00003 AXIOM CONS:
C00004 00004 AXIOM APPEND:
C00005 ENDMK
C⊗;
DECLARE INDVAR X Y Z ε SEXP;
DECLARE INDVAR U V W ε LIST;
DECLARE OPCONST CAR(LIST) = SEXP[R←700];
DECLARE OPCONST CDR(LIST) = LIST[R←700];
DECLARE OPCONST CONS(SEXP,LIST) = LIST;
DECLARE PREDCONST NULL 1 [R←700];
DECLARE OPCONST *(LIST,LIST) = LIST [INF];
DECLARE PREDPAR P 1;
DECLARE INDCONST NILLεLIST;
DECLARE OPCONST REVERSE(LIST) = LIST[R←700];
DECLARE OPCONST REV1(LIST,LIST) = LIST;
AXIOM CONS:
∀X U.(CAR CONS(X,U) = X)
∀X U.(CDR CONS(X,U) = U)
∀U.(¬NULL U ⊃ CONS(CAR U,CDR U) = U)
∀X U.¬NULL CONS(X,U)
;;
AXIOM INDUCTION:
∀U.(NULL U ∨ P(CDR U) ⊃ P(U)) ⊃ ∀U.P(U)
;;
AXIOM NULL:
∀U.(NULL U ≡ U = NILL)
;;
AXIOM APPEND:
∀U V.(U * V = IF NULL U THEN V ELSE CONS(CAR U, CDR U * V))
;;
AXIOM REVERSE:
∀U.(REVERSE U = REV1(U,NILL))
∀U V.(REV1(U,V) = IF NULL U THEN V ELSE REV1(CDR U,CONS(CAR U,V)))
;;